((declare (in) float a) (declare (in) float b)
 (function sub
  (signature float (parameters)
   ((declare (temporary) bool execute_flag)
    (assign (x) (var_ref execute_flag) (constant bool (1)))
    (declare (temporary) float return_value)
    (declare (temporary) bool return_flag)
    (assign (x) (var_ref return_flag) (constant bool (0)))
    (if (expression bool > (var_ref a) (constant float (0.0)))
     ((if (expression bool > (var_ref b) (constant float (0.0)))
       ((assign (x) (var_ref return_value) (constant float (1.000000)))
        (assign (x) (var_ref return_flag) (constant bool (1)))
        (assign (x) (var_ref execute_flag) (constant bool (0))))
       ()))
     ())
    (if (var_ref execute_flag)
     ((assign (x) (var_ref return_value) (constant float (2.000000)))
      (assign (x) (var_ref return_flag) (constant bool (1)))
      (assign (x) (var_ref execute_flag) (constant bool (0))))
     ())
    (return (var_ref return_value))))))
